package n3630;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

	static class TrieNode{
		boolean isStr;
		TrieNode [] next;
		public TrieNode() {
			isStr=false;
			next=new TrieNode[10];
			for(int i=0;i<next.length;i++)next[i]=null;
		}
		public void init() {
			isStr=false;
			for(int i=0;i<next.length;i++)next[i]=null;
		}
	}
	
	
	static TrieNode [] nodeArray=new TrieNode[100001];
	static {
		for(int i=0;i<nodeArray.length;i++)
		{
			nodeArray[i]=new TrieNode();
		}
	}
	
	static int globalCount=1;
	
	static boolean insert(TrieNode root,String str)
	{
		TrieNode p=root;
		for(int i=0;i<str.length();i++)
		{
			if(p.next[str.charAt(i)-'0']!=null)
			{
				p=p.next[str.charAt(i)-'0'];
				if(p.isStr||i==str.length()-1) {
					return false;
				}
			}else {
				p.next[str.charAt(i)-'0']=nodeArray[globalCount];
				nodeArray[globalCount].init();
				globalCount++;
				p=p.next[str.charAt(i)-'0'];
			}
		}
		p.isStr=true;
		return true;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub

		BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
		
		String line=bf.readLine();
		
		int n=Integer.parseInt(line);
		
		for(int i=0;i<n;i++)
		{
			nodeArray[0].init();
			globalCount=1;
			boolean flag=true;
			line=bf.readLine();
			int m=Integer.parseInt(line);
			for(int j=0;j<m;j++)
			{
				line=bf.readLine();
				if(flag&&!insert(nodeArray[0], line))
				{
					flag=false;
				}
			}
			if(flag) {
				System.out.println("YES");
			}else {
				System.out.println("NO");
			}
		}
	}

}
